home *** CD-ROM | disk | FTP | other *** search
Text File | 1989-08-21 | 3.2 KB | 56 lines | [TEXT/GEOL] |
- Interested in b-trees, file handling of variable length records?
-
- I was perusing the old macapp tech messages and saw some related to b-tree
- libraries. We are in the relatively early stages of implementing a b-tree
- package that is based on a unique design. We have two present needs for a
- library that can manage variable length records. One is that we are developing
- an application for teachers that writes out records with text and graphics
- data. Second we are developing an object-oriented framework that supports
- persistent objects. Although you can use the resource manager to handle some
- persistent objects (e.g., view objects defined in an application), you would
- not want to use it to handle a large amount of objects.
-
- We purchased and experimented with both Inside Out (Shana Enterprises) and
- C-Tree (Faircom). They each have advantages and disadvantages, but neither
- would serve our needs well. Inside Out can store data and indexes in a single
- file so that your typical Macintosh user would not have to deal with a separate
- index (.idx) and data file. However, it was very slow at storing and
- retrieving variable length data. C-Tree on the other hand at much better
- performance on this task, but it stores the indexes in a separate from the
- data. C-Tree doesn't do everything Inside Out does, but it is a sophisticated
- b+-tree implementation with an ISAM interface as well. And it comes with source
- and is very portable (it's been ported to just about everything under the sun).
- There are also other b-tree packages with source which can be used on the
- Macintosh. They are generally advertised in PC programming publications. But
- none that we heard about could store the indexes in the same file as the data.
-
- We felt that a separate index file in an application targeted to teachers was
- unacceptable. This is because someone might rename or move the main data file
- in the Finder without doing the same to the .idx file. However, we have seen
- one application which will offer to rebuild the index file when it can't find
- it anymore. Maybe that's not too bad. However, we still feel it's preferable to
- generate one file for your application's documents.
-
- So were motivated to develop a b-tree package with the following
- characteristics. It would store indexes and data in a single file. It would be
- optimized for working with variable length records such as object instances. It
- would be optimized for the Macintosh, but written in C so that it could be
- ported easily (perhaps with some modules including a 68000 assembler
- implementation for the Macintosh). In addition it could secondary indexes (up
- to 15) with variable length keys in the same file as well.
-
- This is not a product announcement, but we are interested in your feedback. If
- the package turns out as nicely as the design seems to indicate we will
- definitely consider marketing it as a developer tool. It is somewhat of niche
- product because it is not a high-level database library like Inside Out and it
- is not a full-featured standard b-tree library like C-Tree. However we think
- there may be other Macintosh developers out there with the same needs --- a
- simple b-tree library that can store indexes in the same file as data and is
- efficient at handling variable length records.
-
- Mark Richer
- Mountain Lake Software
-
-
-
-